package 力扣热题100;

import java.util.Stack;

public class LeetCode16 {
    public int longestValidParentheses(String s) {
        Stack<Integer>stack=new Stack<>();
        char[]arr=s.toCharArray();
        for (int i = 0; i < arr.length; i++) {
            arr[i]=0;//先将所有的都当作是0
        }
        for(int i=0;i<s.length();i++){
            if(s.charAt(i)=='('){
                stack.push(i);//栈中只能放左括号(下标)，且只有右括号才能将左出出去
            }else {
                if(stack.empty()){//如果没有左括号，将多余的右括号去除
                    arr[i]=1;//把它置为一
                }else {
                    stack.pop();//如果有左括号，那么将他出出去
                }
            }
        }
        while (!stack.empty()){//当右括号用完后，将剩下的右括号都置为一
            arr[stack.pop()]=1;
        }
        int count=0;
        int max=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]==1){
                count=0;
                continue;
            }
            count++;
            max=Math.max(count,max);
        }
        return max;
    }


    public static void main(String[] args) {
        LeetCode16 leetCode16=new LeetCode16();
        leetCode16.longestValidParentheses(new String("(()"));
    }
}
